perm filename RANFIL.MAC[2,LCS] blob sn#153765 filedate 1975-04-04 generic text, type T, neo UTF8
00010	;******  CONTAINS RAND, RNDINT, ENDSUB, IFLE, OFLE  7/74 *****
00055	
00077	; IFLE REPLACES CALL IFILE! OFLE REPLACES OFILE. TOM DINGER -- COLGATE
00088	;CALL IFLE(DEV,NAME,N) N='.' MEANS NAME WITH NO EXT.
00094	;     N=' ' MEANS .DAT EXTENSION.  N='.NAM' SETS YOUR EXT.
00194	;CALL OFLE(DEV,NAME,N)  --  SAME AS ABOVE, BUT FOR OUTPUT.
02010		TITLE FILIO
02043		ENTRY IFLE
02076	.DEV.:	Z
02109	.FNAM.:	Z
02142		Z
02175	IFLE:	Z
02208		MOVE	@(16)
02241		MOVEM	.DEV.
02274		MOVE	@1(16)
02307		MOVEM	.FNAM.
02340		MOVE	@2(16)
02373		MOVEM	.FNAM.+1
02406		JSA	16,IFILE##
02439		JUMP	0,.DEV.
02472		JUMP	6,.FNAM.
02505		JRA	16,(16)
02538	
02571		ENTRY OFLE
02604	OFLE:	Z
02637		MOVE	@(16)
02670		MOVEM	.DEV.
02703		MOVE	@1(16)
02736		MOVEM	.FNAM.
02769		MOVE	@2(16)
02802		MOVEM	.FNAM.+1
02835		JSA	16,OFILE##
02868		JUMP	0,.DEV.
02901		JUMP	6,.FNAM.
02934		JRA	16,(16)
02967	
03000	;FORTRAN CALLABLE RANDOM NUMBER GENERATOR
03100	;
03200	;USE    CALL RNDINT   TO INITIALIZE THE GENERATOR
03300	;                     (THE GENERATOR IS LOADED INITIALIZED)
03400	;USE    RAND(XL,XH)   AS A FUNCTION TO RETURN THE NEXT 
03500	;                     RANDOM NUMBER BETWEEN XL AND XH
03600	;                     (XL,XH ARE FLOATING POINT,RAND RETURNS
03700	;		      FLOATING POINT)
03800	;
03900	;CALL ENDSUB CLEARS CONTROL O
04000		ENTRY RNDINT
04100	RNDINT:	0
04200		MOVE 0,[756132257563]
04300		MOVEM 0,R1
04400		ADDI 0,2
04500		MOVEM 0,R2
04600		JRA 16,0(16)
04700	R1:	756132257563
04800	R2:	756132257565
04900		ENTRY RAND
05000	RAND:	0
05100		MOVEM 1,TEMP
05200		MOVE 0,@0(16)
05300		MOVE 1,@1(16)
05400		FSBR 1,0
05500		MOVEM 0,LLIM#
05600		MOVE 0,R1
05700		ADD 0,R2
05800		EXCH 0,R2
05900		MOVEM 0,R1
06000		LSH 0,-11
06100		FSC 0,200
06200		FMP 0,1
06300		FAD 0,LLIM
06400		MOVE 1,TEMP
06500		JRA 16,2(16)
06600		ENTRY ENDSUB
06700	ENDSUB:	0
06800		SKPINC
06900		JFCL
07000		JRA	16,(16)
07100	TEMP:	0
07200		END